package com.zhuiyun.project.api.system.dict.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhuiyun.project.api.system.dict.entity.DictType;
import com.zhuiyun.project.common.response.CommonResult;
import com.zhuiyun.project.utils.pageUtil.PageRequest;

import java.util.List;

/**
* @Author gpd
* @Description 字典类型接口
* @Date 2023-06-19 上午 08:37
* @Return

*/
public interface DictTypeService extends IService<DictType> {

    /**
     * @Author gpd
     * @Description 查询字典管理类型
     * @Date 2023-06-15 下午 05:05
     * @Return PageResult，CommonResult

     */
    IPage<DictType> listType(PageRequest pageRequest, DictType dictType);

    /**
     * @Author gpd
     * @Description 查询字典类型详细(用于字段类型新增和修改)
     * @Date 2023-06-17 上午 09:54
     * @Return CommonResult

     */
    DictType getType(Long dictId);

    /**
     * @Author gpd
     * @Description 新增
     * @Date 2023-06-17 上午 09:45
     * @Return com.zhuiyun.project.common.response.CommonResult

     */
    Integer addDictType(DictType dictType);

    /**
    * @Author gpd
    * @Description 字段新增查询校验字典类型称是否唯一
    * @Date 2023-06-17 上午 10:40
    * @Return boolean

    */
    boolean checkDictTypeUnique(DictType dictType);

    /**
     * @Author gpd
     * @Description 修改字典类型
     * @Date 2023-06-19 上午 08:36
     * @Return CommonResult

     */
    Integer updateDictType(DictType dictType);

    /**
     * @Author gpd
     * @Description 删除字典类型
     * @Date 2023-06-19 上午 09:56
     * @Return CommonResult

     */
    CommonResult deleteDictType(Long[] dictIds) ;

    /**
     * @Author gpd
     * @Description 刷新字典缓存
     * @Date 2023-06-19 上午 11:13
     * @Return CommonResult

     */
    CommonResult refreshCache();

    /**
     * @Author gpd
     * @Description 获取字典选择框列表
     * @Date 2023-06-19 下午 02:30
     * @Return CommonResult

     */
    List<DictType> optionselect();

    /**
     * @Author gpd
     * @Description 根据前端传回的值查询种植类型
     * @Date 2023-06-26 上午 11:35
     * @Return CommonResult

     */
    CommonResult getPlantType(String dictType);

    /**
    * @Description 加载字典缓存数据
    * @Author lzy
    * @Date 2023/7/25 16:17
    * @Return void
    */
    public void loadingDictCache();

    /**
     * @Author gpd
     * @Description 获取教练类型
     * @Date 2023-08-23 上午 11:34
     * @Return CommonResult

     */
    List<DictType> getCoachDictType();
}
